package log

import "log"

type LogLevel int

const (
	DEBUG LogLevel = iota
	INFO
	WARN
	ERROR
)

type Log interface {
	Debug(...string)
	Info(...string)
	Warn(...string)
	Error(...string)
}

type Logger struct {
	level LogLevel
}

func NewLog(level LogLevel) Log {
	return &Logger{level: level}
}
func (l *Logger) Debug(msg ...string) {
	if l.level <= DEBUG {
		log.Println("[DEBUG]", msg)
	}
}

func (l *Logger) Info(msg ...string) {
	if l.level <= INFO {
		log.Println("[INFO]", msg)
	}
}

func (l *Logger) Error(msg ...string) {
	if l.level <= ERROR {
		log.Println("[ERROR]", msg)
	}
}

func (l *Logger) Warn(msg ...string) {
	if l.level <= WARN {
		log.Println("[WARN]", msg)
	}
}

//// 使用自定义日志
//func main() {
//	logger := &Logger{level: INFO}
//	logger.Debug("这条不会显示")
//	logger.Info("这条会显示")
//}
